/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package action;

import controller.Action;
import controller.ActionFactoryLivro;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.IIOException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import model.Cliente;
import model.EstadoLivroDisponivel;
import model.EstadoLivroReservado;
import model.Livro;
import persistence.ClienteDAO;
import persistence.LivroDAO;

/**
 *
 * @author Leandro
 */
public class GravarLivroAction implements Action{

    @Override
    public void execute(HttpServletRequest request, HttpServletResponse response) throws IIOException {
        String nomeLivro = request.getParameter("nomeLivro");
        String autor = request.getParameter("autor");
        Integer anopublicacao = Integer.parseInt(request.getParameter("anopubli"));
        String status = request.getParameter("status");
        String categoria = request.getParameter("categoria");
        
        if(nomeLivro.equals("") || autor.equals("") ||  anopublicacao.equals("") || 
                status.equals("") || categoria.equals("")) {
            try {
                response.sendRedirect("index.jsp");
            } catch (IOException ex) {
                Logger.getLogger(GravarClienteAction.class.getName()).log(Level.SEVERE, null, ex);
            }
        } else {
            try {
              Livro livro = new Livro();
              livro.setNomeLivro(nomeLivro);
              livro.setAutorLivro(autor);
              livro.setAnoPublicacao(anopublicacao);
               EstadoLivroDisponivel estadoLivroDisponivel = new EstadoLivroDisponivel();
                if (status.equals(estadoLivroDisponivel.getEstadoLivro())){
                    livro.setEstadoLivro(estadoLivroDisponivel);
                } else {
                    livro.setEstadoLivro(new EstadoLivroReservado());
                }
                
              livro.setCategoria(ActionFactoryLivro.create(categoria));
              LivroDAO.getInstace().save(livro);
              response.sendRedirect("cadastroRealizado.jsp");
                
            } catch (Exception e) {
                try {
                    response.sendRedirect("cadastroErro.jsp");
                } catch (IOException ex) {
                    Logger.getLogger(GravarClienteAction.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
         
        }
    }    
}
